Methods, apparatuses, and computer program products for providing filtered services and content based on user content

ABSTRACT

An apparatus may include a processor configured to receive a request for a service or content from a first device. The processor may be further configured to receive a user&#39;s context information from a second device. The processor may additionally be configured to filter the requested service or content based at least in part upon the user&#39;s context information. The processor may be further configured to provide the filtered service or content to the first device. Corresponding methods and computer program products are also provided.

TECHNOLOGICAL FIELD

Embodiments of the present invention relate generally to mobilecommunication technology and, more particularly, relate to methods,apparatuses, and computer program products for automatically filteringrequested services and content based on the context of the requestinguser.

BACKGROUND

The modern communications era has brought about a tremendous expansionof wireline and wireless networks. Computer networks, televisionnetworks, and telephony networks are experiencing an unprecedentedtechnological expansion, fueled by consumer demand. Wireless and mobilenetworking technologies have addressed related consumer demands, whileproviding more flexibility and immediacy of information transfer.

Current and future networking technologies continue to facilitate easeof information transfer and convenience to users. One area in whichthere is a demand to further improve the ease of information transferand convenience to users involves the transfer of information to a userdepending on the context of the user. In this regard, the context of auser may include, for example, a user's location, i.e., at home or atwork, other individuals in the user's presence, a time of day, or adate. When using a service or accessing content from a content provider,a user may wish that the service or content be filtered or otherwisetailored depending on his context. For example, when accessingphotographs from a photograph hosting service, a user may wish to onlybe provided with candid photographs with friends and family whenaccessing photographs from his home, but may wish to only be providedwith work-related photographs when accessing photographs from hisoffice. In this regard, content or services accessed by a user maycontain sensitive data or other information that a user may not wish tobe revealed depending on his context. Moreover, data or information thatis sensitive in one context may not be sensitive in another context.

Some existing technologies may allow a user to configure contentfiltering based upon the access device used, such as through the use ofweb browser cookies. However these technologies do not allow forautomatic context-based filtering based on contexts other than useraccess device. Moreover, with the increasing prevalence of laptops andother mobile computing devices these technologies do not account forsituations in which mobile computing devices are used by a user inmultiple locations for which it may be desirable to have filteringcriteria for each location of use. Additionally, some existing devicesmay monitor their own location to provide for context-based filtering ofcontent or services viewed on the device. However, again thesetechnologies do not provide any aid to a user who wishes to accesscontent or services on another device.

Accordingly, it may be advantageous to provide users with a system forautomatically monitoring user context information and filtering contentor services requested by the user on any computing device based uponcontext filtering criteria.

BRIEF SUMMARY

A method, apparatus, and computer program product are therefore providedto enable automatically filtering requested services or contentdepending on the context of the requesting user. In particular, amethod, apparatus, and computer program product are provided to enable,for example, a user of any first device to request delivery of servicesor content to the first device from a remote device. The requestedservice or content may then be automatically filtered according tofiltering criteria based upon the user's context, which is monitored andprovided by a second device associated with the user, and subsequentlyprovided to the first device. Accordingly, user experience may beenhanced by enabling a user to define preferences for the delivery ofservices and content based upon the context of the user, which providefor the automatic filtering of provided services and content regardlessof the device which the user uses to access the services and content.

In one exemplary embodiment, a method is provided which may includereceiving a request for a service or content from a first device andreceiving a user's context information from a second device. The methodmay further include filtering the requested service or content based atleast in part upon the user's context information. The method mayadditionally include providing the filtered service or content to thefirst device.

In another exemplary embodiment, a computer program product is provided.The computer program product includes at least one computer-readablestorage medium having computer-readable program code portions storedtherein. The computer-readable program code portions include first,second, third, and fourth executable portions. The first executableportion is for receiving a request for a service or content from a firstdevice. The second executable portion is for receiving a user's contextinformation from a second device. The third executable portion is forfiltering the requested service or content based at least in part uponthe user's context information. The fourth executable portion is forproviding the filtered service or content to the first device.

In another exemplary embodiment, an apparatus is provided, which mayinclude a processor. The processor may be configured to receive arequest for a service or content from a first device and to receive auser's context information from a second device. The processor may befurther configured to filter the requested service or content based atleast in part upon the user's context information. The processor mayadditionally be configured to provide the filtered service or content tothe first device.

In another exemplary embodiment, an apparatus is provided. The apparatusmay include means for receiving a request for a service or content froma first device. The apparatus may further include means for receiving auser's context information from a second device. The apparatus mayadditionally include means for filtering the requested service orcontent based at least in part upon the user's context information. Theapparatus may also include means for providing the filtered service orcontent to the first device.

Embodiments of the invention may therefore provide a method, apparatus,and computer program product to enhance user experience related toaccessing content or services provided by remote devices. As a result,for example, users may benefit from receiving filtered or otherwisetailored content or services based upon their current context regardlessof the device used to access the services or content.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

Having thus described embodiments of the invention in general terms,reference will now be made to the accompanying drawings, which are notnecessarily drawn to scale, and wherein:

FIG. 1 is a schematic block diagram of a mobile terminal according to anexemplary embodiment of the present invention;

FIG. 2 is a schematic block diagram of a wireless communications systemaccording to an exemplary embodiment of the present invention;

FIG. 3 illustrates a block diagram of a system for providing filteredservices or content based on user context according to an exemplaryembodiment of the present invention;

FIG. 4 is a flowchart according to an exemplary method for receiving auser registration request and context-based filtering criteria accordingto an exemplary embodiment of the present invention; and

FIG. 5 is a flow chart according to an exemplary method for providingfiltered services or content based on user context according to anexemplary embodiment of the present invention.

DETAILED DESCRIPTION

Embodiments of the present invention will now be described more fullyhereinafter with reference to the accompanying drawings, in which some,but not all embodiments of the invention are shown. Indeed, theinvention may be embodied in many different forms and should not beconstrued as limited to the embodiments set forth herein; rather, theseembodiments are provided so that this disclosure will satisfy applicablelegal requirements. Like reference numerals refer to like elementsthroughout.

FIG. 1 illustrates a block diagram of a mobile terminal 10 that maybenefit from the present invention. It should be understood, however,that the mobile terminal illustrated and hereinafter described is merelyillustrative of one type of electronic device that may benefit fromembodiments of the present invention and, therefore, should not be takento limit the scope of the present invention. While several embodimentsof the electronic device are illustrated and will be hereinafterdescribed for purposes of example, other types of electronic devices,such as mobile telephones, mobile communication devices, portabledigital assistants (PDAs), pagers, mobile computers, laptop computers,desktop computers, gaming devices, audio/video players, digitalstill/video cameras, positioning devices (such as a Global PositioningSystem (GPS) device), televisions, or any combination of theaforementioned, and other types of electronic systems, may employembodiments of the present invention.

As shown, the mobile terminal 10 may include one or more antenna 12 incommunication with one or more transmitter 14 and receiver 16combinations, only one of which is shown in the figure. The mobileterminal may also include a controller 20 or other processor thatprovides signals to and receives signals from the transmitter andreceiver, respectively. These signals may include signaling informationin accordance with an air interface standard of an applicable cellularsystem, and/or any number of different wireless networking techniques,comprising but not limited to Wireless-Fidelity (Wi-Fi), wireless LAN(WLAN) techniques such as IEEE 802.11, Ultra Wide Band (UWB),Bluetooth™, and/or the like. In addition, these signals may includespeech data, user generated data, user requested data, and/or the like.In this regard, the mobile terminal may be capable of operating with oneor more air interface standards, communication protocols, modulationtypes, access types, and/or the like. More particularly, the mobileterminal may be capable of operating in accordance with various mobilecommunication protocols, such as for example, first generation (1G),second generation (2G), 2.5G, third-generation (3G) communicationprotocols, fourth-generation (4G) communication protocols, and/or thelike. For example, the mobile terminal may be capable of operating inaccordance with 2G wireless communication protocols IS-136 (TDMA), GSM,and IS-95 (CDMA). Also, for example, the mobile terminal may be capableof operating in accordance with 2.5G wireless communication protocolsGPRS, EDGE, or the like. Further, for example, the mobile terminal maybe capable of operating in accordance with 3G wireless communicationprotocols such as a UMTS network employing WCDMA radio accesstechnology. Some NAMPS, as well as TACS, mobile terminals may alsobenefit from embodiments of this invention, as should dual or highermode phones (e.g., digital/analog or TDMA/CDMA/analog phones).Additionally, the mobile terminal 10 may be capable of operatingaccording to Wireless Fidelity (Wi-Fi) protocols.

It is understood that the controller 20 may comprise the circuitryrequired for implementing audio and logic functions of the mobileterminal 10. For example, the controller 20 may be a digital signalprocessor device, a microprocessor device, an analog-to-digitalconverter, a digital-to-analog converter, and/or the like. Control andsignal processing functions of the mobile terminal may be allocatedbetween these devices according to their respective capabilities. Thecontroller may additionally comprise an internal voice coder (VC) 20 a,an internal data modem (DM) 20 b, and/or the like. Further, thecontroller may comprise functionality to operate one or more softwareprograms, which may be stored in memory. For example, the controller 20may be capable of operating a connectivity program, such as a Webbrowser. The connectivity program may allow the mobile terminal 10 totransmit and receive Web content, such as location-based content,according to a protocol, such as Wireless Application Protocol (WAP),hypertext transfer protocol (HTTP), and/or the like. The mobile terminal10 may be capable of using a Transmission Control Protocol/InternetProtocol (TCP/IP) to transmit and receive Web content across Internet50.

The mobile terminal 10 may also comprise a user interface including aconventional earphone or speaker 24, a ringer 22, a microphone 26, adisplay 28, a user input interface, and/or the like, which may becoupled to the controller 20. Although not shown, the mobile terminalmay comprise a battery for powering various circuits related to themobile terminal, for example, a circuit to provide mechanical vibrationas a detectable output. The user input interface may comprise devicesallowing the mobile terminal to receive data, such as a keypad 30, atouch display (not shown), a joystick (not shown), and/or other inputdevice. In embodiments including a keypad, the keypad may compriseconventional numeric (0-9) and related keys (#, *), and/or other keysfor operating the mobile terminal.

As shown in FIG. 1, the mobile terminal 10 may also include one or moremeans for sharing and/or obtaining data. For example, the mobileterminal may comprise a short-range radio frequency (RF) transceiverand/or interrogator 64 so data may be shared with and/or obtained fromelectronic devices in accordance with RF techniques. The mobile terminalmay comprise other short-range transceivers, such as, for example aninfrared (IR) transceiver 66, a Bluetooth™ (BT) transceiver 68 operatingusing Bluetooth™ brand wireless technology developed by the Bluetooth™Special Interest Group, and/or the like. The Bluetooth transceiver 68may be capable of operating according to Wibree™ radio standards. Inthis regard, the mobile terminal 10 and, in particular, the short-rangetransceiver may be capable of transmitting data to and/or receiving datafrom electronic devices within a proximity of the mobile terminal, suchas within 10 meters, for example. Although not shown, the mobileterminal may be capable of transmitting and/or receiving data fromelectronic devices according to various wireless networking techniques,including Wireless Fidelity (Wi-Fi), WLAN techniques such as IEEE 802.11techniques, Ultra Wide Band (UWB), and/or the like.

The mobile terminal 10 may comprise memory, such as a subscriberidentity module (SIM) 38, a removable user identity module (R-UIM),and/or the like, which may store information elements related to amobile subscriber. In addition to the SIM, the mobile terminal maycomprise other removable and/or fixed memory. In this regard, the mobileterminal may comprise volatile memory 40, such as volatile Random AccessMemory (RAM), which may comprise a cache area for temporary storage ofdata. The mobile terminal may comprise other non-volatile memory 42,which may be embedded and/or may be removable. The non-volatile memorymay comprise an EEPROM, flash memory, and/or the like. The memories maystore one or more software programs, instructions, pieces ofinformation, data, and/or the like which may be used by the mobileterminal for performing functions of the mobile terminal. For example,the memories may comprise an identifier, such as an international mobileequipment identification (IMEI) code, capable of uniquely identifyingthe mobile terminal 10.

The mobile terminal 10 may further comprise a positioning sensor 36. Thepositioning sensor 36 may include, for example, a global positioningsystem (GPS) sensor, an assisted global positioning system(Assisted-GPS) sensor, etc. In one embodiment, however, the positioningsensor includes a pedometer or inertial sensor. Further, the positioningsensor may determine the location of the mobile terminal based uponsignal triangulation or other mechanisms. The positioning sensor iscapable of determining a location of the mobile terminal, such aslatitude and longitude coordinates of the mobile terminal or a positionrelative to a reference point such as a destination or a start point.Information from the positioning sensor may be communicated to a memoryof the mobile terminal or to another memory device to be stored as aposition history or location information. Furthermore, the memory of themobile terminal may store instructions for determining cell idinformation. In this regard, the memory may store an application programfor execution by the controller 20, which determines an identity of thecurrent cell, i.e., cell id identity or cell id information, with whichthe mobile terminal is in communication. In conjunction with thepositioning sensor, the cell id information may be used to moreaccurately determine a location of the mobile terminal.

Referring now to FIG. 2, an illustration of one type of system thatcould support communications to and from an electronic device, such asthe mobile terminal of FIG. 1, is provided by way of example, but not oflimitation. As shown, one or more mobile terminals 10 may each includean antenna 12 for transmitting signals to and for receiving signals froma base site or base station (BS) 44. The base station 44 may be a partof one or more cellular or mobile networks each of which may compriseelements required to operate the network, such as a mobile switchingcenter (MSC) 46. As well known to those skilled in the art, the mobilenetwork may also be referred to as a Base Station/MSC/Interworkingfunction (BMI). In operation, the MSC 46 may be capable of routing callsto and from the mobile terminal 10 when the mobile terminal 10 is makingand receiving calls. The MSC 46 may also provide a connection tolandline trunks when the mobile terminal 10 is involved in a call. Inaddition, the MSC 46 may be capable of controlling the forwarding ofmessages to and from the mobile terminal 10, and may also control theforwarding of messages for the mobile terminal 10 to and from amessaging center. It should be noted that although the MSC 46 is shownin the system of FIG. 2, the MSC 46 is merely an exemplary networkdevice and the present invention is not limited to use in a networkemploying an MSC.

The MSC 46 may be coupled to a data network, such as a local areanetwork (LAN), a metropolitan area network (MAN), and/or a wide areanetwork (WAN). The MSC 46 may be directly coupled to the data network.In one embodiment, however, the MSC 46 may be coupled to a gateway (GTW)48, and the GTW 48 may be coupled to a WAN, such as the Internet 50. Inturn, devices such as processing elements (e.g., personal computers,server computers or the like) may be coupled to the mobile terminal 10via the Internet 50. For example, as explained below, the processingelements may include one or more processing elements associated with acomputing system 52 (two shown in FIG. 2), origin server 54 (one shownin FIG. 2) or the like, as described below.

As shown in FIG. 2, the BS 44 may also be coupled to a signaling GPRS(General Packet Radio Service) support node (SGSN) 56. As known to thoseskilled in the art, the SGSN 56 may be capable of performing functionssimilar to the MSC 46 for packet switched services. The SGSN 56, likethe MSC 46, may be coupled to a data network, such as the Internet 50.The SGSN 56 may be directly coupled to the data network. Alternatively,the SGSN 56 may be coupled to a packet-switched core network, such as aGPRS core network 58. The packet-switched core network may then becoupled to another GTW 48, such as a GTW GPRS support node (GGSN) 60,and the GGSN 60 may be coupled to the Internet 50. In addition to theGGSN 60, the packet-switched core network may also be coupled to a GTW48. Also, the GGSN 60 may be coupled to a messaging center. In thisregard, the GGSN 60 and the SGSN 56, like the MSC 46, may be capable ofcontrolling the forwarding of messages, such as MMS messages. The GGSN60 and SGSN 56 may also be capable of controlling the forwarding ofmessages for the mobile terminal 10 to and from the messaging center.

In addition, by coupling the SGSN 56 to the GPRS core network 58 and theGGSN 60, devices such as a computing system 52 and/or origin server 54may be coupled to the mobile terminal 10 via the Internet 50, SGSN 56and GGSN 60. In this regard, devices such as the computing system 52and/or origin server 54 may communicate with the mobile terminal 10across the SGSN 56, GPRS core network 58 and the GGSN 60. By directly orindirectly connecting mobile terminals 10 and the other devices (e.g.,computing system 52, origin server 54, etc.) to the Internet 50, themobile terminals 10 may communicate with the other devices and with oneanother, such as according to the Hypertext Transfer Protocol (HTTP), tothereby carry out various functions of the mobile terminals 10.

Although not every element of every possible mobile network is shown inFIG. 2 and described herein, it should be appreciated that electronicdevices, such as the mobile terminal 10, may be coupled to one or moreof any of a number of different networks through the BS 44. In thisregard, the network(s) may be capable of supporting communication inaccordance with any one or more of a number of first-generation (1G),second-generation (2G), 2.5G, third-generation (3G), fourth generation(4G) and/or future mobile communication protocols or the like. Forexample, one or more of the network(s) may be capable of supportingcommunication in accordance with 2G wireless communication protocolsIS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, one or more ofthe network(s) may be capable of supporting communication in accordancewith 2.5G wireless communication protocols GPRS, Enhanced Data GSMEnvironment (EDGE), or the like. Further, for example, one or more ofthe network(s) may be capable of supporting communication in accordancewith 3G wireless communication protocols such as Universal MobileTelephone System (UMTS) network employing Wideband Code DivisionMultiple Access (WCDMA) radio access technology. Some narrow-band AMPS(NAMPS), as well as TACS, network(s) may also benefit from embodimentsof the present invention, as should dual or higher mode mobile terminals(e.g., digital/analog or TDMA/CDMA/analog phones).

As depicted in FIG. 2, the mobile terminal 10 may further be coupled toone or more wireless access points (APs) 62. The APs 62 may compriseaccess points configured to communicate with the mobile terminal 10 inaccordance with techniques such as, for example, radio frequency (RF),Bluetooth™ (BT), infrared (IrDA) or any of a number of differentwireless networking techniques, including wireless LAN (WLAN) techniquessuch as IEEE 802.11 (e.g., 802.11a, 802.11b, 802.11g, 802.11n, etc.),Wibree™ techniques, WiMAX techniques such as IEEE 802.16,Wireless-Fidelity (Wi-Fi) techniques and/or ultra wideband (UWB)techniques such as IEEE 802.15 or the like. The APs 62 may be coupled tothe Internet 50. Like with the MSC 46, the APs 62 may be directlycoupled to the Internet 50. In one embodiment, however, the APs 62 maybe indirectly coupled to the Internet 50 via the GTW 48. Furthermore, inone embodiment, the BS 44 may be considered as another AP 62. As will beappreciated, by directly or indirectly connecting the mobile terminals10 and the computing system 52, the origin server 54, and/or any of anumber of other devices, to the Internet 50, the mobile terminals 10 maycommunicate with one another, the computing system, etc., to therebycarry out various functions of the mobile terminals 10, such as totransmit data, content, service or the like to, and/or receive content,data, service, or the like from, the computing system 52. As usedherein, the terms “data,” “content,” “information”, “service” andsimilar terms may be used interchangeably to refer to data capable ofbeing transmitted, received and/or stored in accordance with embodimentsof the present invention. Thus, use of any such terms should not betaken to limit the spirit and scope of the present invention.

Although not shown in FIG. 2, in addition to or in lieu of coupling themobile terminal 10 to computing systems 52 and/or origin server 54across the Internet 50, the mobile terminal 10, computing system 52 andorigin server 54 may be coupled to one another and communicate inaccordance with, for example, RF, BT, IrDA or any of a number ofdifferent wireline or wireless communication techniques, including LAN,WLAN, WiMAX, Wireless Fidelity (Wi-Fi), Wibree™ and/or UWB techniques.One or more of the computing systems 52 may additionally, oralternatively, include a removable memory capable of storing content,which can thereafter be transferred to the mobile terminal 10. Further,the mobile terminal 10 may be coupled to one or more electronic devices,such as printers, digital projectors and/or other multimedia capturing,producing and/or storing devices (e.g., other terminals). Like with thecomputing systems 52, the mobile terminal 10 may be configured tocommunicate with the portable electronic devices in accordance withtechniques such as, for example, RF, BT, IrDA or any of a number ofdifferent wireline or wireless communication techniques, including USB,LAN, Wibree™, Wi-Fi, WLAN, WiMAX and/or UWB techniques. In this regard,the mobile terminal 10 may be capable of communicating with otherdevices via short-range communication techniques. For instance, themobile terminal 10 may be in wireless short-range communication with oneor more devices 51 that are equipped with a short-range communicationtransceiver 80. The electronic devices 51 may comprise any of a numberof different devices and transponders capable of transmitting and/orreceiving data in accordance with any of a number of differentshort-range communication techniques including but not limited toBluetooth™, RFID, IR, WLAN, Infrared Data Association (IrDA) or thelike. The electronic device 51 may include any of a number of differentmobile or stationary devices, including other mobile terminals, mobiletelephones, mobile communication devices, wireless accessories,appliances, portable digital assistants (PDAs), pagers, laptopcomputers, mobile computers, desktop computers, gaming devices,audio/video players, digital still/video cameras, positioning devices(such as a Global Positioning System (GPS) device), televisions, motionsensors, light switches, or any combination of the aforementioned, andother types of electronic devices.

FIG. 3 illustrates a block diagram of a system 300 for providingfiltered services and content according to an exemplary embodiment ofthe present invention. As used herein, “exemplary” merely means anexample and as such represents one example embodiment for the inventionand should not be construed to narrow the scope or spirit of theinvention in anyway. It will be appreciated that the scope of theinvention encompasses many potential embodiments in addition to thoseillustrated and described herein. The system 300 will be described, forpurposes of example, in connection with the mobile terminal 10 of FIG. 1and the system of FIG. 2. However, it should be noted that the system ofFIG. 3, may also be employed in connection with a variety of otherdevices, both mobile and fixed, and therefore, embodiments of thepresent invention should not be limited to application on devices suchas the mobile terminal 10 of FIG. 1. Further, the system of FIG. 3 mayemploy systems for communication other than that illustrated in FIG. 2.It should also be noted, that while FIG. 3 illustrates one example of aconfiguration of a system for automatically finding configurationsettings for services, numerous other configurations may also be used toimplement embodiments of the present invention.

Referring now to FIG. 3, the system 300 may include a mobile device 302,a presence server 310, a web portal server 318, a web service provider328, and a user's web terminal (“web terminal”) 332. In someembodiments, the mobile device 302 may be a mobile terminal 10. However,the mobile device 302 may be any computing device capable of monitoringa user's context as described herein. In some embodiments, the presenceserver 310, web portal server 318, and web service provider 328 may beembodied as a computing system 52 or origin server 54 of the system 47of FIG. 2.

Although referred to herein as a “server,” the presence server 310 andthe web portal server 318 may be embodied as any computing device orplurality of computing devices in a variety of computer systemarchitectures, including those which are not client-serverarchitectures. Further, as used herein, a “user's context,” or“context,” which may be used interchangeably, refer to, for example, auser's location, a device from which the user has requested services orcontent, other individuals in the user's presence, a time of day, anevent, a date, or other information that defines the environment,surroundings, or setting of the user. “Content” and “services” may beused interchangeably herein, and collectively refer to, for example,photographs and other image content, video content, music or other audiocontent, television/radio broad/multi/unicasting or streaming, videogames, news feeds and content, blogs, web pages, maps, advertisements,vendor offers such as may be provided by an online retailer, searchresults such as may be returned by a search engine in response to a usersearch, as well as social networking content and services, anycombination of the aforementioned, or any other information or materialprovided to or requested by the user. Although referred to as a webservice provider 328, the web service provider 328 is not limited toembodiments operable on the Internet. It will be appreciated that theweb service provider 328, as well as embodiments of the invention may beconfigured to be operable on other networks, including intranets, widearea networks, and the like and may communicate using any of a number ofnetwork protocols.

The mobile device 302 may include a processor 304, which may be acontroller 20 of a mobile terminal 10, as well as a context monitoringunit 306. The context monitoring unit 306 may be embodied as hardware,software, or a combination thereof and may be embodied as or otherwiseexecuted by the processor 304. In this regard, the context monitoringunit 306 may be configured to monitor the context of the user. Thecontext monitoring unit 306 may monitor the current location of themobile device 302, which may be determined, for example, based upon aposition determined by the positioning sensor 36 of a mobile terminal10. In this regard, the current location of the mobile device 302 may beassumed to be the location of the user of the mobile device 302 indetermining the user's context. The context monitoring unit 306 mayfurther be configured to monitor other devices in close proximity to themobile device 302. In this regard, each user of the system 300 or evenother devices communicating over a larger network, such as the networkof the system of FIG. 2 may be uniquely identifiable and associated witha user. Accordingly, the context monitoring unit 306 may detect devicesin close proximity to the mobile device 302 using various near-fieldcommunication technologies, such as, for example, RF (such as via RFtransceiver 64 of a mobile terminal 10), IR (such as via IR transceiver66 of a mobile terminal 10), Bluetooth (such as via BT transceiver 68 ofa mobile terminal 10), as well as other near-field technologies andwireless networking protocols. In some embodiments, the contextmonitoring unit 306 may be configured to directly monitor individuals inproximity to the mobile device 302, even if one or more individuals arenot in possession of a device or if device(s) possessed by one or moreindividuals are not recognized by the context monitoring unit 306,through the use of voice recognition. In this regard, the contextmonitoring unit 306 may monitor and/or determine individuals such ascoworkers and family members in close proximity to the mobile device 302based upon unique device identifiers of proximate devices which areassociated with other users or based upon known voice signatures ofindividuals.

In addition to location detection through the use of the positioningsensor 36 and proximity sensing, the context monitoring unit 306 maydetermine further user context information through the use of variousenvironmental sensors. These environmental sensors may be embodiedinternally to the mobile device 302 or additionally or alternatively,may be embodied externally to and communicate with the mobile device302. Environmental sensors may monitor and report a variety ofinformation to the context monitoring unit 306, such as for example,ambient air temperature surrounding the mobile device 302, direction ofmotion of the mobile device 302, rate of motion of the mobile device302, etc.

The context monitoring unit 306 may further be configured to determineother user context information from applications or devices, which maybe executed by or otherwise embodied on the processor 304 or may beexecuted by or embodied on remote devices which may be in communicationwith the context monitoring unit 306. For example, the contextmonitoring unit 306 may determine a current time or date from a clockapplication which may be embodied on the mobile device 302 or on aremote device such as any of the devices of the system of FIG. 2. Thecontext monitoring unit 306 may additionally, for example, determinewhether the user currently has a scheduled appointment or other event,which the user may have entered into a calendar or other schedulingmanagement program, which may be embodied on the mobile device 302 or aremote device such as any of the devices of the system of FIG. 2. Inthis regard, the context monitoring unit 306 may determine a user'scontext through any information about a current event, information aboutthe user, or information about one or more active applications on adevice associated with the user, which is stored or may otherwise beobtained from an application or device in communication with the contextmonitoring unit 306 as well as current status information related to themobile device 302 itself.

The context monitoring unit 306 may further be configured to communicatecurrent user context information to a remote device, such as thepresence server 310, over a communication link, such as thecommunication link 308, which may be a communication link in accordancewith any of those illustrated and described in connection with thesystem of FIG. 2. In some embodiments, the context monitoring unit 306may communicate current context information to or otherwise “sync”current context information with a second device associated with theuser, such as a web terminal 332. In such embodiments, this seconddevice associated with the user may then communicate context informationto the presence server 310. In this regard, in an exemplary embodiment,the context monitoring unit 306 may be configured to communicate currentuser context information to a remote device at regular intervals. Inaddition or alternatively, the context monitoring unit 306 may beconfigured to communicate current user context information to a remotedevice at the request of the remote device, such as at the request ofthe presence server 310, web portal server 318, or web service provider328. In some embodiments, the context monitoring unit 306 mayadditionally or alternatively communicate current user contextinformation to a remote device in response to a change in contextinformation and/or in response to a command of the user, which may beentered over a user interface of the mobile device 302, such as via thekeypad 30 of a mobile terminal 10.

The presence server 310 may include a processor 312 and a user contextdatabase 314. The processor 312 may be a single processor or maycomprise multiple processors executed in parallel, which may becontained in a single computing device or may be distributed amongmultiple computing devices, such as in a server cluster. The usercontext database 314 may be stored on or otherwise embodied as a memorycomponent, which may be embodied in the presence server 310, a remotedevice, or in a plurality of devices in communication with the presenceserver 310. The user context database 314 may be configured to storeuser context information for a plurality of users in association with anidentifier indicative of the respective user with whom each set of usercontext information is associated. In this regard, the user contextdatabase 314 may be configured to receive and/or request scheduledand/or unscheduled updates of user context information from the contextmonitoring unit 306 via the communication link 308 and store receivedcontext information in association with the user from whose mobiledevice 302 the context information was received. The user contextdatabase 314 may further be configured to periodically and/or on requesttransmit stored user context information to another component or device,such as the content filtering unit 320 of a web portal server 318 overthe communication link 316. The communication link 316 may be any of thecommunication links described in connection with the system of FIG. 2.In this regard, the receipt, storage, and transmission of user contextinformation by the user context database 314 may be controlled by theprocessor 312.

Although not illustrated in FIG. 3, in some embodiments the presenceserver 310 may be embodied in a network access point 62 or gateway 48.In such embodiments the presence server 310 may communicate directlywith the web terminal 332, such as over communication link 330, as wellas with the mobile device 302 over communication link 308 and the webportal server 318 over communication link 316.

Although illustrated in accordance with one embodiment in FIG. 3 asseparate computing devices, the presence server 310 and web portalserver 318 may be embodied on a single computing device. The web portalserver 318 may include a content filtering unit 320, memory 322, and aprocessor 324. The processor 324 may be a single processor or maycomprise multiple processors executed in parallel, which may becontained in a single computing device or may be distributed amongmultiple computing devices, such as in a server cluster. The contentfiltering unit 320 may be embodied as software, hardware, or acombination thereof and may be controlled by or otherwise embodied asthe processor 324. The content filtering unit 320 may be configured toreceive a request for a service or content from a remote device, such asthe web terminal 332 and to filter the requested service or content andprovide the filtered content to the web terminal 332, such as over thecommunication link 330. In this regard, the web portal server 318 maybe, for example, a computing device, system of computing devices, or aservice provider providing any of several commonly known web portal orsearch services to computing device users. Examples of these web portalservices include search services, such as those provided by OVI® andGOOGLE®, photo hosting services such as FLICKR™, social networkingproviders such as FACEBOOK™, a gaming server, or a multimedia contentserver. The content filtering unit 320 may be configured to retrieveunfiltered requested services or content from a web service provider328, such as over a communication link 326. According to one embodimentillustrated in FIG. 3, the web portal server 318 may be a gatewaycomputing device wherein a user of a web terminal 332 may log in andretrieve services or content from a plurality of web service providers328. In alternative embodiments, however, the web portal server 318 andweb service provider 328 may be embodied on a single computing deviceand the requested service or content may be stored or otherwise beembodied local to the content filtering unit 320. Furthermore, in somealternative embodiments, the presence server 310, web portal server 318,and web service provider 328 may be embodied as a single device, system,or service provider.

Further, although not illustrated herein, the web portal server 318 maymerely serve as a communication intermediary, such as a network accesspoint 62 or gateway 48, between the web terminal 332 and the web serviceprovider 328 and the actual filtering of content and services may occuron the web service provider 328. In such embodiments, the contentfiltering unit 320 may be embodied on the web service provider 328.Alternatively, the content filtering unit 320 may be also embodied inthe network access point 62 or the gateway 48.

The content filtering unit 320 may be configured to filter services orcontent requested by a requesting user of a web terminal 332 based uponthe requesting user's context information in accordance with therequesting user's one or more user-defined filtering criteria, which maybe stored in memory 322. In this regard, the content filtering unit 320may request from the user context database 314 the context informationof the requesting user. Although not illustrated in FIG. 3, inalternative embodiments, the content filtering unit 320 may additionallyor alternatively request current context information for a requestinguser directly from a mobile device 302 associated with the requestinguser. In addition to the context information received from the usercontext database 314 or directly from the context monitoring unit 306 ofa mobile device 302, the content filtering unit 320 may receiveadditional context information from the web terminal 332, which may becombined with context information received from the user contextdatabase 314 or context monitoring unit 306. This additional contextinformation may include, for example, an indication uniquely identifyingthe web terminal 332 or the user of the web terminal 332 so that furtherfiltering may be performed based upon an identity or characteristic ofthe user or the web terminal 332 from which the requesting user isrequesting services or content. In this regard, the web terminal 332 maybe any computing device with network connectivity and an indicationidentifying the web terminal 332 may be, for example, an IP address.

The content filtering unit 320 may retrieve appropriate user-definedfiltering criteria from the memory 322. In this regard, the memory 322may store multiple sets of filtering criteria in association with auser. Each set of filtering criteria (i.e. a filtering profile) for auser may be associated with a particular context of the user, such as alocation from which the user is requesting services or content, and/orwith the type of service or content that the user is requesting. Thusthe content filtering unit 320 may be configured to determine andretrieve an appropriate set of filtering criteria for the requestinguser based upon the user's context, the requested service or content, aswell as any other predefined factors.

The content filtering unit 320 may be configured to filter services orcontent using the content filtering criteria based upon metadatainformation, i.e., meta tags, or other identifiers associated with theservices or content. For example content or media, such as photographcontent, may be tagged with meta tags or other associated identifiersindicating individuals or objects present in the content or media,locations at which the content or media were taken or created, topic ofthe content or media, related locations or topics, and/or social context(such as personal, work, friends, family, or secret). Social networkingcontacts may be tagged with indications of a relationship to the user,such as coworker, friend, or family. Content or media, such as video,photographs, audio, gaming, and web page content and services may berated according to a content ratings standards. For example, videocontent may be rated by the Motion Pictures Association of America(MPAA); web pages and other internet content may be rated by theInternet Content Rating Association (ICRA); gaming content and servicesmay be rated by the Entertainment Software Ratings Board (ESRB); andmusic content may be rated in accordance with standards of the RecordingIndustry Association of America (RIAA). In this regard, a user maydefine filtering criteria such that the content filtering unit 320 mayfilter out content or services in certain contexts which have been ratedinappropriate for certain age groups by a third party content standardsratings group.

Accordingly, a user may register with the web portal server 318 andpredefine a number of sets of filtering criteria prior to requesting aservice or content. Registration may be through the use of a mobiledevice 302 or any other computing device, such as a web terminal 332. Auser may define an address or other indication of a device from whichhis context information may be retrieved by the content filtering unit320. This indication may thus define an address of a presence server 310or an address of the mobile device 302. In this regard, in embodimentsin which the content filtering unit 320 retrieves user contextinformation directly from a mobile device 302 and wherein a userregisters with the web portal server 318 using a mobile device 302, acomponent of the web portal server 318 may be configured toautomatically associate an address or other identifier of the mobiledevice 302 with the user for the purpose of future context informationretrieval. In defining the various sets of filtering criteria, the webportal server 318 may be configured to present a user with a number offiltering options via a user interface. For example, for location-basedfiltering criteria, a user may be provided with the option to assign adesignated location and set of filtering criteria with the currentposition of his mobile device 302. Additionally or alternatively, a usermay be presented with a map or other visual means to select a pluralityof locations with which he desires to associate sets of filteringcriteria. The user may also associate filtering criteria withidentifiers of devices associated with other users, such as phonenumbers of mobile devices associated with friends, coworkers, andfamily, such that the filtering criteria is employed when the user is inproximity to the devices of the other user.

After registering with the web portal server 318, a user may log ontothe web portal server 318, such as by entering a login ID, such as aunique user name and password combination, prior to requesting a serviceor content. Additionally or alternatively, the web portal server 318 maybe configured to recognize a requesting user without requiring a priorlogon. For example, the web portal server 318 may recognize a requestinguser based upon the identity of a web terminal 332, such as may bedetermined by IP address recognition of the user device, used by therequesting user to make a request. Additionally or alternatively, theweb portal server 318 may recognize a requesting user based upon anidentifier, such as a web browser cookie, stored remotely on the webterminal 332 and provided by an application executed on the web terminal332 and used by the requesting user to make a request.

The web terminal 332, or other user terminal, may include a processor336 and an application interface 334. The web terminal 332 may be astationary or mobile device like a personal computer, laptop computer, amobile computer, a mobile communication device, a mobile phone, atelevision, a radio, a set-top box (STB), a game console, a digitalvideo recorder (DVR), an audio/video player, a still/video camera, orany combination of the aforementioned. Although depicted in FIG. 3 asseparate devices, in some embodiments the web terminal 332 and mobiledevice 302 may be embodied as the same device, which may communicatecontext information to the user context database 314 of the presenceserver 310 and may communicate service requests to and receive filteredcontent from the content filtering unit 320 of the web portal server318.

The application interface 334 may be defined by computer programinstructions that are executed on or otherwise controlled by theprocessor 336. The application interface 334 may be any application oruser interface used to access content or services over a network, suchas that of the system 300. In this regard, the application interface 334may be configured to access multiple services and forms of content inaccordance with embodiments of the invention, or a web terminal 332 mayinclude a plurality of application interfaces 334, each of which isconfigured for a particular service or content. As such, an applicationinterface 334 may be, for example, a web browser, a media/video/audioplayer, gaming application, a news reader, or other common software usedto access and facilitate user interaction with requested services andcontent. Accordingly the application interface 334 may be configured toprovide a user interface to a user and in response to a user request,transmit a request for a service or content over communication link 330to the content filtering unit 320. The transmitted request may alsoinclude an identifier indicating the requesting user, such as a loginrequest, login ID, cookie, or other user identification means, so thatthe content filtering unit 320 may filter the requested services orcontent accordingly. The application interface 334 may further beconfigured to receive filtered services or content and subsequentlydisplay, playback, or otherwise facilitate the execution of orinteraction with the received filtered service or content.

FIGS. 4 and 5 are flowcharts of a system, method, and computer programproduct according to an exemplary embodiment of the invention. It willbe understood that each block or step of the flowcharts, andcombinations of blocks in the flowcharts, may be implemented by variousmeans, such as hardware, firmware, and/or software including one or morecomputer program instructions. For example, one or more of theprocedures described above may be embodied by computer programinstructions. In this regard, the computer program instructions whichembody the procedures described above may be stored by a memory deviceof a mobile terminal or server and executed by a built-in processor in amobile terminal or server. As will be appreciated, any such computerprogram instructions may be loaded onto a computer or other programmableapparatus (i.e., hardware) to produce a machine, such that theinstructions which execute on the computer or other programmableapparatus create means for implementing the functions specified in theflowchart block(s) or step(s). These computer program instructions mayalso be stored in a computer-readable memory that can direct a computeror other programmable apparatus to function in a particular manner, suchthat the instructions stored in the computer-readable memory produce anarticle of manufacture including instruction means which implement thefunction specified in the flowchart block(s) or step(s). The computerprogram instructions may also be loaded onto a computer or otherprogrammable apparatus to cause a series of operational steps to beperformed on the computer or other programmable apparatus to produce acomputer-implemented process such that the instructions which execute onthe computer or other programmable apparatus provide steps forimplementing the functions specified in the flowchart block(s) orstep(s).

Accordingly, blocks or steps of the flowcharts support combinations ofmeans for performing the specified functions, combinations of steps forperforming the specified functions and program instruction means forperforming the specified functions. It will also be understood that oneor more blocks or steps of the flowcharts, and combinations of blocks orsteps in the flowchart, may be implemented by special purposehardware-based computer systems which perform the specified functions orsteps, or combinations of special purpose hardware and computerinstructions.

In this regard, one embodiment of a method for receiving a userregistration request and context-based filtering criteria as illustratedin FIG. 4 may include the web portal server receiving a userregistration request at operation 410. This user registration requestmay optionally comprise receiving a login ID, such as a user name andpassword, for the registering user. The web portal server may thenoptionally receive a definition of the user's presence server or mobileterminal address at operation 420. This definition may comprise anyindication of a device from which the user's mobile context informationmay be retrieved, wherein the indication allows for recognition of andcommunication with in accordance with any appropriate networkingprotocol. In this regard, the definition may be, for example, an IPaddress, URL, or phone number uniquely identifying the device on anetwork. Operation 430 may then comprise receiving one or more sets ofcontext-based filtering criteria. The received information may then bestored in memory 322 in association with the registering user atoperation 440.

FIG. 5 illustrates one embodiment of a method for providing filteredservices or content based on user context. The method may optionallyinclude receiving a user login request from a first device at operation510. In this regard, a user login request may include an indication of adevice identity that may be associated with a user, such as an IPaddress or IMEI code, or browser cookies, as well as a login identifier,such as a user name and optional password. The content filtering unit320 may then receive a request for a service or content from the firstdevice, such as the web terminal 332, at operation 520. Operation 530may comprise receiving the user's context information from a seconddevice, such as from the presence server 310 or the mobile device 302.Accordingly, the second device is separate from the first device. Itwill be appreciated that as used herein, “separate from” merely meansnot the exact same physical device, but does not carry any broaderimplication with regard to a type of device or location of a device.Operation 540 may optionally comprise receiving the requested service orcontent from a web service provider 328. This operation may not benecessary in embodiments wherein the functionalities of the web portalserver 318 and the web service provider 328 are embodied on a singlecomputing device. The content filtering unit 320 may then retrievestored filtering criteria associated with the user from memory 322 atoperation 550. Operation 560 may then comprise the content filteringunit 320 filtering the requested service or content. The contentfiltering unit 320 may then provide the filtered service or content tothe first device, such as the web terminal 332 at operation 570.

The above described functions may be carried out in many ways. Forexample, any suitable means for carrying out each of the functionsdescribed above may be employed to carry out embodiments of theinvention. In one embodiment, all or a portion of the elements generallyoperate under control of a computer program product. The computerprogram product for performing the methods of embodiments of theinvention includes a computer-readable storage medium, such as thenon-volatile storage medium, and computer-readable program codeportions, such as a series of computer instructions, embodied in thecomputer-readable storage medium.

As such, then, some embodiments of the invention may provide severaladvantages to a user using a computing device to access content andservices. For example, a user may wish to have requested content andservices filtered depending on his current context. By providing theuser with a system according to embodiments of the invention forautomatically filtering content and services based upon the user'scontext as monitored in part by a mobile device associated with theuser, the user may be provided with an enhanced experience whenaccessing content and services over a network. In this regard,embodiments of the system may facilitate a user receiving content andservices filtered according to user-defined parameters regardless of thedevice used to access the content and services without having toconfigure each individual access device. Additionally embodiments of theinvention may facilitate the filtering of any content or service withoutnecessitating each individual content or service used by a user to beconfigured according to user filtering preferences.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the embodiments of the invention are not to belimited to the specific embodiments disclosed and that modifications andother embodiments are intended to be included within the scope of theappended claims. Moreover, although the foregoing descriptions and theassociated drawings describe exemplary embodiments in the context ofcertain exemplary combinations of elements and/or functions, it shouldbe appreciated that different combinations of elements and/or functionsmay be provided by alternative embodiments without departing from thescope of the appended claims. In this regard, for example, differentcombinations of elements and/or functions than those explicitlydescribed above are also contemplated as may be set forth in some of theappended claims. Although specific terms are employed herein, they areused in a generic and descriptive sense only and not for purposes oflimitation.

What is claimed is:
 1. A method comprising: causing, responsive to arequest for a service for a first device, requesting a user's contextinformation received from a second device, wherein the second device isone or more mobile devices associated with the user and are separatefrom the first device; and generating the requested service for thefirst device based at least in part upon the user's context information.2. A method according to claim 1, further comprising: receiving a loginrequest in conjunction with an indication of the user's identification,wherein the user's identification is associated with the second device;and causing a request for the user's context information to be sent tothe second device based upon the association of the second device withthe user's identification.
 3. A method according to claim 1, whereinrequesting the user's context information received for the second devicecomprises requesting the user's context information from a presenceserver.
 4. A method according to claim 1, wherein generating therequested service for the first device based at least in part upon theuser's context information comprises: filtering the requested servicebased at least in part upon the user's context information; and causingthe filtered service to be provided to the first device.
 5. A methodaccording to claim 4, wherein filtering the requested service based atleast in part upon the user's context information comprises: requestingthe requested service from a web service provider; receiving therequested service from the web service provider; and filtering thereceived requested service based at least in part upon the user'scontext information.
 6. A method according to claim 1, furthercomprising: filtering the requested service based at least in part uponone or more filtering criteria associated with the requested service,wherein the one or more filtering criteria comprise metadata informationassociated with the requested service, contexts associated with therequested service, content ratings standards applied to the requestedservice, or user-defined parameters associated with the requestedservice.
 7. A method according to claim 1, wherein the contextinformation comprises one or more of a location of the first device, acurrent time, an appointment in a calendar application, or an entry in acalendar application.
 8. An apparatus comprising at least one processorand at least one memory storing computer program code, wherein the atleast one memory and stored computer program code are configured, withthe at least one processor, to cause the apparatus to at least: cause,responsive to a request for a service for a first device, request auser's context information received from a second device, wherein thesecond device is one or more mobile devices associated with the user andare separate from the first device; and generate the requested servicefor the first device based at least in part upon the user's contextinformation.
 9. An apparatus according to claim 8, wherein the at leastone memory and stored computer program code are configured, with the atleast one processor, to further cause the apparatus to: receive a loginrequest in conjunction with an indication of the user's identification,wherein the user's identification is associated with the second device;and cause a request for the user's context information to be sent to thesecond device based upon the association of the second device with theuser's identification.
 10. An apparatus according to claim 8, whereincause request the user's context information received for the seconddevice comprises to further cause the apparatus to: request the user'scontext information from a presence server.
 11. An apparatus accordingto claim 8, wherein generate the requested service for the first devicebased at least in part upon the user's context information comprises tofurther cause the apparatus to: filter the requested service based atleast in part upon the user's context information; and cause thefiltered service to be provided to the first device.
 12. An apparatusaccording to claim 11, wherein filter the requested service based atleast in part upon the user's context information comprises to furthercause the apparatus to: request the requested service from a web serviceprovider; receive the requested service from the web service provider;and filter the received requested service based at least in part uponthe user's context information.
 13. An apparatus according to claim 8,wherein the at least one memory and stored computer program code areconfigured, with the at least one processor, to further cause theapparatus to: filter the requested service based at least in part uponone or more filtering criteria associated with the requested service,wherein the one or more filtering criteria comprise metadata informationassociated with the requested service, contexts associated with therequested service, content ratings standards applied to the requestedservice, or user-defined parameters associated with the requestedservice.
 14. An apparatus according to claim 15, wherein the contextinformation comprises one or more of a location of the first device, acurrent time, an appointment in a calendar application, or an entry in acalendar application.
 15. A non-transitory computer-readable storagemedium carrying a series of instructions which cause one or moreprocessors to at least perform the following steps: causing, responsiveto a request for a service for a first device, requesting a user'scontext information received from a second device, wherein the seconddevice is one or more mobile devices associated with the user and areseparate from the first device; and generating the requested service forthe first device based at least in part upon the user's contextinformation.
 16. A non-transitory computer-readable storage mediumaccording to claim 15, wherein the one or more processors are caused, atleast in part, to further perform: receiving a login request inconjunction with an indication of the user's identification, wherein theuser's identification is associated with the second device; and causinga request for the user's context information to be sent to the seconddevice based upon the association of the second device with the user'sidentification.
 17. A non-transitory computer-readable storage mediumaccording to claim 15, wherein causing requesting the user's contextinformation received for the second device comprises causing the one ormore processors, at least in part, to further perform: requesting theuser's context information from a presence server.
 18. A non-transitorycomputer-readable storage medium according to claim 15, whereingenerating the requested service based at least in part upon the user'scontext information comprises causing the one or more processors, atleast in part, to further perform: filtering the requested service basedat least in part upon the user's context information; and causing thefiltered service to be provided to the first device.
 19. Anon-transitory computer-readable storage medium according to claim 18,wherein filtering the requested service based at least in part upon theuser's context information comprises causing the one or more processors,at least in part, to further perform: requesting the requested servicefrom a web service provider; receiving the requested service from theweb service provider; and filtering the received requested service basedat least in part upon the user's context information.
 20. Anon-transitory computer-readable storage medium according to claim 8,wherein the one or more processors are caused, at least in part, tofurther perform: filtering the requested service based at least in partupon one or more filtering criteria associated with the requestedservice, wherein the one or more filtering criteria comprise metadatainformation associated with the requested service, contexts associatedwith the requested service, content ratings standards applied to therequested service, or user-defined parameters associated with therequested service.